home *** CD-ROM | disk | FTP | other *** search
/ InterCD 2001 May / may_2001.iso / intercd / root / Html / ^CutePage / data1.cab / IE4Gadget_Template / tooltip.js < prev   
Encoding:
Text File  |  2000-05-12  |  3.1 KB  |  103 lines

  1. var tooltipDefaultStyle = "background: infobackground; color: infotext; font: statusbar; padding: 1; border: 1 solid black; position: absolute; z-index: 99; visibility: hidden;";
  2. var tooltipStart = "<table id=\"internalTooltipSpan\" cellspacing=0 cellpadding=0 style=\"" + tooltipDefaultStyle + "\"><tr><td>";
  3. var tooltipEnd   = "</td></tr></table>";
  4. var showTimeout;
  5. var hideTimeout;
  6. var shown = false;
  7. var x;
  8. var y;
  9.  
  10. function getReal(el) {
  11.     temp = el;
  12.  
  13.     while ((temp != null) && (temp.tagName != "BODY")) {
  14.         if (temp.getAttribute("tooltip")) {
  15.             el = temp;
  16.             return el;
  17.         }
  18.         temp = temp.parentElement;
  19.     }
  20.     return el;
  21. }
  22.  
  23. function document.onmousemove() {
  24.     x = window.event.x;
  25.     y = window.event.y;
  26. }
  27.  
  28. function document.onmouseover() {
  29.     fromEl = getReal(event.fromElement);
  30.     toEl = getReal(event.toElement);
  31.  
  32.     if ((toEl.getAttribute("tooltip")) && (toEl != fromEl)) {
  33.         showTimeout = window.setTimeout("displayTooltip(toEl)", eval(toEl.id+"delayTime"));
  34.     }
  35. }
  36.  
  37. function document.onmouseout() {
  38.     fromEl = getReal(event.fromElement);
  39.     toEl = getReal(event.toElement);
  40.     if ((fromEl.getAttribute("tooltip")) && (toEl != fromEl)) {
  41.         window.clearTimeout(showTimeout);
  42.         hideTooltip();
  43.     }
  44. }
  45.  
  46. function displayTooltip(el) {
  47.     if (!document.all.internalTooltipSpan) {
  48.         document.body.insertAdjacentHTML("BeforeEnd", tooltipStart + el.getAttribute("tooltip") + tooltipEnd);
  49.     }
  50.     else {
  51.         internalTooltipSpan.outerHTML = tooltipStart + el.getAttribute("tooltip") + tooltipEnd;
  52.     }
  53.     var toolStyle = el.getAttribute("tooltipstyle");
  54.     if (toolStyle != null) {
  55.         internalTooltipSpan.style.cssText = tooltipDefaultStyle + toolStyle;
  56.     }
  57.     internalTooltipSpan.style.left = x - 3;  
  58.     internalTooltipSpan.style.top = y +20;
  59.     
  60.     dir = getDirection();    
  61.  
  62.     if (typeof(swipe) == "function")
  63.         window.setTimeout("swipe(internalTooltipSpan, dir);",1);    
  64.     else
  65.         internalTooltipSpan.style.visibility = "visible";
  66.  
  67.     shown = true;
  68.     hideTimeout = window.setTimeout("hideTooltip()",  eval(el.id+"showTime"));
  69. }
  70.  
  71. function hideTooltip() {
  72.     if (shown) {
  73.         window.clearTimeout(hideTimeout);
  74.         internalTooltipSpan.style.visibility = "hidden";
  75.         shown = false;
  76.     }
  77. }
  78.  
  79. function getDirection() {
  80.     var pageWidth, pageHeight, scrollTop;
  81.         pageHeight    = document.body.clientHeight;
  82.         pageWidth     = document.body.clientWidth;
  83.         toolTipTop    = internalTooltipSpan.style.pixelTop;
  84.         toolTipLeft   = internalTooltipSpan.style.pixelLeft;
  85.         toolTipHeight = internalTooltipSpan.offsetHeight;
  86.         toolTipWidth  = internalTooltipSpan.offsetWidth;
  87.         scrollTop     = document.body.scrollTop;
  88.         scrollLeft    = document.body.scrollLeft;
  89.  
  90.         if (toolTipWidth > pageWidth)
  91.             internalTooltipSpan.style.left = scrollLeft;
  92.         else if (toolTipLeft + toolTipWidth - scrollLeft > pageWidth)
  93.             internalTooltipSpan.style.left = pageWidth - toolTipWidth + scrollLeft;
  94.             
  95.         if (toolTipTop + toolTipHeight - scrollTop > pageHeight) {
  96.             internalTooltipSpan.style.top = toolTipTop - toolTipHeight - 22;
  97.             return 8;
  98.         }
  99.         return 2;
  100. }
  101.  
  102. document.write('<script typer="text/javascript" src="swipe.js"></script>');
  103.